Home
🔃
100


JSONG: The Soun♩Trax File Format


All types and forms of music can be expressed in .jsong
.jsong files are zip archives, containing song data, audio samples, and art.

JSON is the world's favorite format for easily modifying data using a simple text editor, so naturally SoundTrax employs JSON.
.tune.json data is human-readable, feature complete, and infinitely extensible.

mp3, wav and ogg are good, web-friendly audio formats that can be used as instruments.
ZzFx is a tiny synth format, which serves SoundTrax well for extra-small music and sound effects jsongs.

.tune.json data

.jsong zip archives can contain multiple albums, each one a .tune.json file.
.tune.json textfiles contain these objects:

band - contains instrument data
pats - pattern data, which are shared by the subsongs that make up the album
trax - song data for any number of subsongs
macs - machines (generators, effects and the master output speaker), shared by the album tracks.

band

The band is made up of named audio samples or software synths. Each instrument can have various proprties:
wav points to wav, mp3 or ogg files inside the .jsong archive.
icon is the emoji that represents the instrument in SoundTrax.
vol is volume, one of any number of instrument properties that can be defined, like attack, decay etc.

pats

Each pattern can have various proprties:
plays is the machine type that this pattern is played with.
bpp (beats-per-pattern) is the number of steps which can contain musical notes.
lines contain the song data. Each line can contain any number of channels, and each channel can contain any number of commands.
The most simple 1-channel line could simply contain a note, eg. G♯4
A more complex line could contain a channel also describing reverb, flange, sustain, retrigger and any other properties.
Master patterns can contain useful metadata, like song lyrics, time signature and Dance-Dance moves.
In a major departure from most trackers, there are no command codes to remember. Instead of CFF, it's just vol:1

trax

Each trak is a song on the album, primarily containing seqs - the sequence of when patterns are played.
Each pattern instance in the sequence is accompanied by the time it starts playing and which machine is playing it. Also properties for how long it plays, the transpose amount, and the speed it plays at can be added.
Other trak properties include info, author, artwork (linking to included .jpg or .png files), song length, song repeat start position, default beats-per-minute, ticks/step and time signature.
The SoundTrax interface turns the seqs object into a visual calendar, so each track in the sequence is a selectable event.
This makes inspecting the sequence much easier than on most trackers, which usually display an unnecessarily huge number of empty columns full of zeros.

macs

Every machine eventually feeds into the Master speaker, so in the JSON, all machines are children of Master.
Machines can have any number of parameters, eg. volume, stereo panning.
The SoundTrax interface automatically turns the macs array into a visual mindmap, to prevent creating the mess of wires usually associated with manual arrangement. In addition to purely functional properties, each machine can have a pos: left or right.
Unlike apps that seek to recreate the confusion of a desk full of analogue knobs in a 1980s music studio, each machine presents only the parameters that pertain to it and its children.
The only limit to the number of machines you can add is the power of your computer.

Try it!

Rename a downloaded jsong file to zip and unpack it to see inside.